﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IWMAG.Scripting.Types;
using IWMAG.Scripting.Interpreter;

namespace IWMAG.Scripting.AST.ObjectModel
{
    public abstract class CodeExpression : CodeObject {
        public CodeExpression(Compiler.Lexeme l)
            : base(l) {

        }

        public abstract CodeType TypeOf();

        public override void Verify(Helpers.CompileTable sym, List<Compiler.IUserInfo> error) { }

        public virtual IEnumerable<Continuation> ValueOf(ScriptEngine engine, Helpers.RuntimeTable sym, Reference<RunValue> val) {
            val = null;
            return null;
        }
    }
}
